<?php


namespace App\Logics;


use App\Models\User;
use Illuminate\Support\Facades\Config;
use \App\Service\Base\Logic;

class EncryptLogic extends Logic
{

    // TODO  加解密测试

    // 获取加密配置
    public function config()
    {
        $conf = Config::get('encrypt');

        // 长度
        $conf['iv_len']  = 16;
        $conf['key_len'] = 24;
        $conf['key']     = substr($conf['key'], 0, 24);
        $conf['iv']      = substr($conf['iv'], 0, 16);


        return $conf;
    }

    // 获取加密
    public function encode()
    {
        $type = 'DES-ECB';
        $type = 'AES-128-CBC';
        $type = 'AES-192-CBC';
        $iv   = '';
        $from = 'hahaha';
        if($type == 'AES-192-CBC' || $type == 'AES-128-CBC'){
            $iv = '1234567812345678';
        }

        //$from =  "这是一个测试AES";
        //$iv = 'abcdefghijklmnop';

        // key 24位
        // iv  16位
        $str = openssl_encrypt($from, $type, 'mythinkphpmythinkphpmythinkphp', 0, $iv);
        //$code = base64_encode($str);
        //var_dump($code);

        return ['encode' => $str, 'from' => $from];
    }

    // 解密
    public function decode()
    {
        $str = $this->encodeString1();
        $str = 'PVdrXHv8yrpQQqyy4Z+Jdw==';
        $str = '+jB3poUuin0=';
        $str = '9L241rcB6wxEfD7qG50IvR+Ls5+r1Cg7';
        $str = 'YzXNRYB6/mmevnBiZPLRPu4Knk+qUVNyhUKonAB2Wjg=';
        $str = '98YO9qeYO/uHR2k1P87g/w==';

        $type = 'DES-ECB';
        $type = 'AES-192-CBC';
        //$type = 'AES-128-CBC';
        $iv = '';
        if($type == 'AES-128-CBC' || $type == 'AES-192-CBC'){
            $iv = '1234567812345678';
        }

        // key 24位
        // iv  16位
        //$string = openssl_decrypt($str, $type, 'mythinkphpmythinkphpmythinkphp', 0, $iv);
        //$string = openssl_decrypt($str, $type, 'mythinkphpmythinkphpmythinkphp', 1, $iv);
        //$string = openssl_decrypt($str, $type, 'mythinkphpmythinkphpmyth', 1, $iv);
        $string = openssl_decrypt($str, $type, 'mythinkphpmythinkphpmyth', 0, $iv);

        return ['data' => $string, 'from' => $str];
    }

    // 解密
    public function decode2()
    {
        $opt    = $this->option();
        $str    = $this->encodeString2();
        $string = $opt->decode($str);

        return ['data' => $string, 'from' => $str];
    }

    // 各种加密加密
    public function all()
    {
        // key 24位
        // iv  16位
        $iv  = '1234567812345678';
        $key = 'mythinkphpmythinkphpmythinkphp';
        $opt = $this->option();

        // 加密配置
        $conf = Config::get('encrypt');
        $iv   = $conf['iv'];
        $key  = $conf['key'];
        $iv   = substr($iv, 0, 16);
        $key  = substr($key, 0, 24);

        // 加密数据
        $from = 'hahaha';    // 加密数据
        $info = (new User())->isCache(true)->oneFind(['id' => 1]);
        $opt->throwReturn(empty($info), '会员不存在！');

        $info = $info->toArray();
        $user = json_encode($info, JSON_UNESCAPED_UNICODE);  // 重新整理

        // 加密
        $type192 = 'AES-192-CBC';
        $type128 = 'AES-128-CBC';
        $sto192  = openssl_encrypt($from, $type192, $key, 0, $iv);
        $sto128  = openssl_encrypt($from, $type128, $key, 0, $iv);
        $tok192  = openssl_encrypt($user, $type192, $key, 0, $iv);
        $tok128  = openssl_encrypt($user, $type128, $key, 0, $iv);
        $base192 = base64_encode($sto192);
        $base128 = base64_encode($sto128);

        // 解密
        $str192 = openssl_decrypt($sto192, $type192, $key, 0, $iv);
        $str128 = openssl_decrypt($sto128, $type128, $key, 0, $iv);

        $result = [
            'iv'  => $iv,
            'key' => $key,
            '128' => [
                'from'        => $from,
                'encode'      => $sto128,
                'base64'      => $base192,
                'decode'      => $str128,
                'user_json'   => $user,
                'user_encode' => $tok128,
                'user_token'  => 'user加密的base64_encode',
                'token'       => base64_encode($tok128),
            ],
            '192' => [
                'from'        => $from,
                'encode'      => $sto192,
                'base64'      => $base128,
                'decode'      => $str192,
                'user_json'   => $user,
                'user_encode' => $tok192,
                'user_token'  => 'user加密的base64_encode',
                'token'       => base64_encode($tok192),
            ],
        ];


        return $result;
    }

    // 加解密js
    public function js()
    {
        $str = <<<EOD

//const key = '1234567812345678';  // 十六进制数作为密钥
//const iv = 'abcdefghijklmnop';   // 十六进制数作为密钥偏移量




// CryptoJS支持AES-128、AES-192和AES-256
// 它会根据你传入的密钥的大小来选择变体
// AES-128密钥
// var key = "1234567812345678"; // 16 bytes
// AES-192密钥
// var key = "12345678123456781234567812345678"; // 24 bytes
// AES-256密钥
// var key = "1234567812345678123456781234567812345678123456781234567812345678"; // 32 bytes

// 加密解密3可行 但需要测试php对应
// 加密解密4可行 已经和php对应

#################################################################################################################
## 执行 并输出

const key = CryptoJS.enc.Utf8.parse("mythinkphpmythinkphpmyth");  //十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse("1234567812345678");  //十六进制数作为密钥

let from ='hahaha';
//let enStr = Encrypt3(from);
//let deStr = Decrypt3(enStr);


enStr = Encrypt4(from);
deStr = Decrypt4(enStr);
console.log('原始字符串：' + from)
console.log('加密字符串：' + enStr)
console.log('解密字符串：' + deStr)


#################################################################################################################
## 以下是函数

// DES加密函数
function Encrypt4(data) {
    // 使用DES算法对数据进行加密
    var encrypted = CryptoJS.AES.encrypt(data, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC, // 使用CBC模式
        padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充方式
    });

    data =  encrypted.toString(); // 返回加密后的字符串

   // base64
   return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(data))
}

// DES解密函数
function Decrypt4(content) {
    // base64
    content = CryptoJS.enc.Base64.parse(content).toString(CryptoJS.enc.Utf8)

    // 使用DES算法对内容进行解密
    // 去除换行符
    var bytes = CryptoJS.AES.decrypt(content, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC, // 使用CBC模式
        padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充方式
    });

    // 将解密后的字节数组转换为UTF-8编码的字符串，并返回
    var decryptResult = bytes.toString(CryptoJS.enc.Utf8);


    return decryptResult.toString();

    //return CryptoJS.enc.Utf8.stringify(bytes);
}



// DES加密函数
function Encrypt3(data) {
    // 使用DES算法对数据进行加密
    var encrypted = CryptoJS.DES.encrypt(data, key, {
        iv: iv,
        mode: CryptoJS.mode.ECB, // 使用ECB模式
        padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充方式
    });

    return encrypted.toString(); // 返回加密后的字符串
}

// DES解密函数
function Decrypt3(content) {
    // 使用DES算法对内容进行解密
    // 去除换行符
    var bytes = CryptoJS.DES.decrypt(content, key, {
        iv: iv,
        mode: CryptoJS.mode.ECB, // 使用ECB模式
        padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充方式
    });

    // 将解密后的字节数组转换为UTF-8编码的字符串，并返回
    var decryptResult = bytes.toString(CryptoJS.enc.Utf8);


    return decryptResult.toString();

    //return CryptoJS.enc.Utf8.stringify(bytes);
}



//解密方法
function Decrypt2(word) {
    let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
    let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
    let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
    let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    return decryptedStr.toString();
}

//加密方法
function Encrypt2(word) {
    let srcs = CryptoJS.enc.Utf8.parse(word);
    let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
    return encrypted.ciphertext.toString(CryptoJS.enc.base64);
}


EOD;

        return $str;
    }

    #################################################################################################
    ## 一些加密字符串
    // 解密字符串
    public function encodeString1()
    {
        return '98YO9qeYO\/uHR2k1P87g\/w==';
    }

    // 解密字符串
    public function encodeString2()
    {
        return 'OEhLTU1GSkIvell1UWdNTHRrOWRUbTYxTVR0MDZxUmZhNWtmanRRQzJzeldhTDd4UVNldjFPWndTL3JTLysxREtLN3puU2NOdmZHN3A2MUVKMVZsc0NCVFVYSDhFWGExb0w0Q2xHTlhQQ1RZT21pbWZrS1JwRnJGTmtWSHQyQnlQcE8rb3ZrckN6MFdlSlFiTlpSVWc3SzIvSGFoREFmNWNZaFFQZzVBbnFraXlQb0tpOEJFMkt2dktVMk1adjdvYU9acDFXN0FXak94Z3paK1FrbTZuTmlkdGZTT2RWcVBqYWMzTGJSYkUydEgxN3poa0hIVmlLY2tKNXp5em0yS1UxTEtIQmlHRUNzVEptNk1MelBGZjQrL0Z4WlBjREozdGNTYlh6Z0dLbC9UNmMybU1wMXc4VTRwUnM4eTk3UnZzc2h4UkEvZ2d5V0ZoQkVZZ1NjVXBXOGdyVUdkWlJMSlI0WExoUEUvSm1SVmd6aU12L3JZZXRKZVRRYXc0MW52Y1JmK1dvMVhOeHh3YUlHMGMwdkRsVDl3eUxCTmJ3b3hlVGZBUlNpWW51a1hCZTQyd1BDYjYveGZ2Y0FQWnB4aThaTzJ2UC9HMVA2VnZkemoxbldZUFFHM0lleUN4dlg3a2RaNWx2WVVmaEhJd1ZqY3J1Wkg3dlIyLzA4T3duSWR6NEVNcTVZU3l4NTcxNDMyMjJLRVM4ek1Wa2lwcFEzckF5QUdiNVYwYW9MWE5lYVJwMTF6M3dFeEVRSFNaeGpSZ1psRzdMYy9wL0R1QldCbEN1M0lUTnhiTWVhR3V4cEJkMEQxbHZFUDhEYTdmWVN2WGdxdjcrdTJwZURjeGphL0lIQXI2c0FNTHc3UU51blNBQlVjK2k5djJ3NmJ1UzI1S3c1NGs0QW5QNTlxQnNzV3poMGw3a3FuWmxqNVYxV0w1TWRSdmNoRkxqbXFDYVNydnFITHVOQ0FWOGtESGZ0dkVFK2ZMV0lncnA3aTF0S2M3aGNpSkNwcS9sckpaNXI0ZDVjTWJrNFlrN21xU1Jqc2RrM09DdHcvbldRWFR6MUZMdGxidHR3Q1JBanhPMU9TWFJaK2pxVlN4U2VDVGc2S3FIVUluU0pRSGhGVkV6MnhJZExMK3d4QmhsWE1zSU9XNGhDcGxKS2paTDdTRVkzc1FRZXdhR1pzRVB1QkVKUjdCV0xaMnhsL21MNnhMcFlYWEtaZVVCSkgrZFBtVkNkVDM2Z3dCVHg2ZlBTRk1ETlNVeTd5a3NLS2RJdkJRejRyZXFET2l6ckNmcUNzdHNMVlQ1WCsxMktkR3BTOWU4YWxBeGY1a3JpQXRGeFR3WWZ1c1hmc3UzVzcvM2JQK0wveG1FUHFWdXJtRTh6aVJHNzFmUS80QlJ1N1hUaDRxdHpHM3NsdU5xNUtmOGg1RlNkWWhSWGx3dlN1TW1qcGpVNldIWTZBS1k2YktLRmprcHdTTC9LcmgvRmh5QlRsU1d5d1l4VjJOcFBMQVdVc0hMbjBHMHlFSVZTd05hWnlRemJaZjZQVk1zcWlrV29zZHNuS2hDeXI0RFg3WFYxNVhFeWs2SDNVQVN4QXVhRUh2aEZHMlVhME9lcUw0VCsxdWFhZ2MvU29CQ0xlSUFDMlVibTZua0srK3k0OGpIcDZZV3V1MjlWaWxTa3RpSmk3L20vSVh4b04rTm0rK0ViNFpIWFd4UlRjeGxTb3p1T1BUQ0g0Z0UrMDhyeE5CVTg5VGFmWWphNUlxNStMY3JDd1ZhQ0hXT1JObElJMUJnNHdOSFBWNGNvekRtRGpiTWlxTitHYXBKeVF6am5EbHYrYjlSTUE5UkRKaUJUMWNHZVJuTTRURDFQaCswYUdzQW1IcmxYeExKVU1sbytHSi9PanpybXJhekhmL29IVXRVUmVNNFpIMG4yY1EzalAwcG1kWnFhcEcwdVZFVHpuWFNGSlltY2JQd2c5bW5KQm1mc0RUUWUwQmg3TDBvekpIcmFsUDI4TW5FbFlUanZjeE0ybmJvVmRIR1djMFhYc28yMnRLRVNpb3I1VXBNdElFQ2twbU5Xam85MGJNRWdsTEZGR1BMTjlFWks4UFlHQ3Y1UFh4VlJNODdRdXY0aFNsL2NWbzlXYU1qR253MVNWV3o5dVNWNDFMOC8vRmRucWxJTHc1K00wYmJoKzljNTlUZWZyTEtLWmE4TzBEV3QzYzl1TksrVU1iSGdzOUdvNU03L28yeUN2OFBDTWdWenhTenBibDdZSWduTkNhZ3cyVFQ2bk5CVi9ST1FKWDJaWlhFNzEwbE9tUUJiTnFDcFl3ekJWQmxZWTVNOGNYOUNxWTB0U2NwTHFHUk1KVDVQYjA4dXI2NWFqTHJvNis3MUt3TnFRd2JmNlQ0RU4yOFp2eTllMkRjRXVmbDRYUFp6UW9NQ2RXRVlFdlBDUy8xZFdTYUJQaWx3M0N2Q1ExcTAzQ1gwS0h2eUlnbUZTMkpvZk9nT3pqR0gxd1Q4UzF6bkQ5K3lBYU0yaDZLQko2RUg0aXVFN2ZBNlZ4a0c2RGtBOEpNeXNiYjIyVUxWODBxTjNtanR0c3kzcE0wMUNuUEI3c3pBT2hHWDNRejA1QlB2aC9jbWp3b1psWEtnUGhaemRrRDliVTQ0bVB2MW1lbWxvajBpNkMyNFpCUDNtcGZZL3k3YjJ5TzZxVk5UWm5hU3dkOTJacThZZFEvcDBmNkN1M1JhZVd5UEJPdG0wWnNyMjJERUdmaVRiektRSmo0OVFwdnJybUozWENueXByam9kOGdnZFltcllrN2diRFRKUFFYS3hiVzVkeFFadVFHZFRrNmZreWpaUStzd240OExoZS85elZ4RVJVcGdHbSs0bGxudnllaU1sTnJCUk1MN2swajRONENuNXcvWS9MOHEyM3VXa1VESXFldFNaeTFNb3dSWFNiQ1BJa0JxbnlUVkk0ZFU0NEhJelY2NkQycHpJSGRjU0k5a1E3WS84SitDcTRqekdFcSt0aStpeno2ZHFjcFV0L3VRTzlFN1I2TkJwc2hJQmwxRVZabzRaR0psYnZxUFlhQStlVTlYbjRGRm9QbEtUUi9EK0VzcFZCd0Ezc0txdWNJbnRlci9OclIwMmt0WGtLTlduRFh4U1JDV09yNzFGREg1N2dtcDNHSDZMT3VwOWgzNkh6ZEY3cjdwaUc0T1RqR3Rzblpmc3FuVXBhWXVpUnZkblkvMnRJMENsQzlDTk1hY2RqeS95bWVBVTdwTTdUTkJ1R0NaWldOY2sxTm5DMExxT1c4amZNbXdxSGIrY1I5UjQ4WUE3SDErVW1PT3dmbTU2SHJvTWxQVmR5NzRBSDBrNWhqWVQ1UU9XY0VJMytSL3FZMmFDTmJmWVpnMkJ3TzMwb0R5UW9QRFltRzFnRFZ5THlIQnFzckdxUzBJNERTTFBLR2N5SjhiNldXQ0tEOFNZZHZINHJiRjZVdE5YMEdKWnFqM0hwb1NSNnhKbnlPMXhVK0NXRlZvNmJEcHRNb3g4SGhLclpYUWZlTytvZE0yNnQ4ZCtPeWlKc1pjZmMvR2FOKzZaWmpMYUZqS3FUclU3amxwa0Zya3hJUTk4OCtSK2lSQWRVaElidU0wU3pnR0ZWSkQrMlhKb2FUZ0tmcDA0ZmNKRjl5TkJNb0QwWE01bWZpLzdaQ0d6T09nYlE1TERSRnNPMmZFMUhIVlFpdXRVeDIvdll0cFRBNWZ6Zys4dFVyd2x2cVFRWnJKallnUTg3SkJGOCs0TmFBQjN6ZjRrU1RZaWdyY3FvaTVKanM3VldVaFphamVHaVp6QllNcFhYSGgvMVp3dzFPa0NlRkU3bk52TnI1MStBTG5pUklERTVZUlpYSEZtaTNWb0sycVpVc1NRLzZ6N0ZZMFpYUVF2UnhWSUFDazRyVEFnZGdVTmRyemRKenpuYXhNL2J5TUVUdzNuS3dWU1RTNExOYlRDZktrNkFBY2VGVWRIdnNKKzdCUEZVbURRRExSb1F3Y0dFVHBRanFUUlpQQm5Lc2FYWTlpb09kanNmN0lpdGdwb0M2N3JKQUxPNFhOa3kzajM5dGlXcXNSMEJqVys0ZFp4TDRFNkdySS9QOWNkR01jcmpWK2NjYk5JWW5rVXlScjBONkNoNWRrSk9wUGxJa2NKclNpNXN1eWtuK1RxUlNzbWdPKzZNV3pBMDREQkFrMmZxM053V2FxYmVWczlYa21qajNOMG9PR3RVRmRWTWdVS3BJenpDSnBLU0YzMGFKVWdOaTNlWE5LWmR2ditYS2RWVHBPcWdvVFF6VVEwaEtCUVRMNmVSYjI5bHlqbGJUekdPSkVPMjBLbWh2ZWJaYnBWTDA4aUUrL1ZOMFhNNEpIM3RwWVYyMlNYcG1pV09sOFJzMzhYVnU4SEg2c3JEY2MxLzhSVUUraGZSREZyL3RzWjZwb3MrMmhPbzF2YXNrVm42bGNCQVNsNWdPWHVEZ1I3K3plVWxvODMzaktldTVlRE9EbXMrYUtPR1NFUStCNHUwRjJ0WlRqd29uUFRmWHhFTHpXMEdSaitJQ3VZbmlvcmJTUC9lYklzMExOUkhJSWMzeklLV0w4eGVISFU1bTRNNTV5TFA1Z0VQZVZqR2c5eENvbG1hTFhhQ1IxVEVicHNUdU1aK1BTaEpBQzZ5YXpxcGJLTHV5YTFKeUQyK2l4RmNzc1BBWC9HazU0L0MzQ0R1WkkwNkVIa0NtSEtXWkNybWNOcU5CUG5MWTQ1dE84RXYwcnpHeFhOUDVERzNzb0ZNdGljcGtlNktQYnNuTnU5ckpjRTRvd0tNaDlFT2RiRENuQTZsRWgyNlV2cGNrOXl4ZEpUS2hIc0xmVHVPVzc3SmNPSE1UMFhSeVljUVNaTjQ5VFh6bFg2bkViVG8wbGlmVVFpOEZmeVB3Qk04QWljRTVyN2hIeHJhZEpNNUhWUHEwQ3pYbHVHbTBQTVhvTGF6TkQ5c2ljZTdBalNBRUorTHZwYTNkWlZjMm1oY0FQNzZvd1NYWkVvMWFCUGNLY0RIbmRESHpGdDJVODFJN1lvSEptSmFIdndVL0VUT1FTbExqb09ZRG10YmFIVzc3VnpZOVlKZG1jcmVFNmdEem9NSks3ZXVGd2lJQy9nT1hIWlVlSk9FRE9SMlJRVE1mSlgxQTNxTk10SFdDcTh3RUdxSVJyem1MUFlqMm5pdzREVnhRMnZscFVxSU1MWVI2dXRWSkpjaHFFYlhxV2lvZDM0KzVEanFZRVV3a3NCVVkwMlByRi96UlVtRlRhRU1kaDFJRTJCeC9JQThKSDcxUHVVT1RPZHlLT3pCMGxHZFU4eTErbnlRK2FWeGs4Tk9KamRqRUhndTVzcDhtWjdiejdNY2tOWkZ1bGNkQnZzNTlNMVFrM1gvZFlOaTJKUzhUK0htSGhtWXVuNjJmMjF5YmUwRjM4emNZMXBwZStsaGZBWmNscjhPWGorT2NKSm92UGFxVHN1bktYNENXdW0yNHZnK3RwSEp2T0FsV0N2TVhmeHRGam94UENSNVlIdVNPQWVkU2dkVnQvNDJqRll5NG9IdVpFeFB3RHVlWDRVUGFmNmpZTWJKUFdzbldNYk5KZDhRYnJJd1EwYXlHRHR6NXU1Tm9pUzQ5bmt4VGNXeDJ1bDJseVZsKzR4ajVOMHNjcDBjRHRoQjRNTHZQM2FBaGdIUGhhT0YwQnIybm5Bd0QwZTU4MnNZOGFycE9hampyQkJyZGhSMHUwZDlMZW1wbnJwV0dvdVNETS91anllRmpQUS91SmFMU1NoVTdhWDFJdmNvakNITVgyUmk2V1VnZ3RnazArK2ZBTUQxWEw5MUtOZVR3RmplbWd4RVVpeXFwRko1aGZUWmhzZ2QyRWcvallDS2xFWHJrY0hHNFEvZ0ZXVk9pTlJtVEliQ0V0M0hXMjFKZnYxNTF4eDFacVpCTk9uSEVXVUxkNy8xdkY3aWRjb0pScUIxa2xtQm84Qkp2U0w5VWhmZ3JlTksvaEJ5NVJkRjhPcTdHUGtxK2VhVDBiTEZqbWF2eU9lMm5Jb2hvVTRMaGFzcElCczloYnluRzNWTDFVWTdoY1hyMjFqenpHQXVuSUNEYWpObXdkS2RPeFBCbUJOZ3B3YmxCWkhIdWsrN2VNUEpvUm1LbFVzOUxDdXREbEpuZnUyYnFORTRvMXk2NWZnRWsvQkdRM0JwcDRZekxrS3l4Sm90b3owZ0tveU5nMEN3YWdIWHVnc1dOandGRjl6ME84UURjUHZVYjhRc3pyTEZUdUJhelc4YVFQVlF6aDhhU29xeElzenNSMGNoc2Y0bUVNUElwTlZhMDJlOFNxYmdueEcwdVlFaFEzSHByR1o2cWczOG1vdkxLVGpLdTEwZmJSMmFaUjlFZjc4UVBWWlBvM3A5UEdqM3pRekFWY1lUNGtBTTc0YTF5VENZQk83ci9xSFhkUG1PNktIVnEwMkJhSjk0VmlieTNRcFNwNTVPYW1nMHA1dGxlcWJMcG9QZUNHajB3K1JzcE81d0JURmw0TWhRWGZ3T2cxRzNucE1vYUthZnkyNkdwK2cxWFN2WmMzQUVvMGp6VkpUQzkvYmwvT0NWSklhOFczRFBOcFgweTNEQ3A3dS9vV3grRGNnOTNlZVJaamM1dXBVSkVXTnBpck1XbERuRFhqd2tPbzdsQXhOS1BLbDdHdGJCUFRjd2JuUktHM0pmNVY5ZGV0YmJoTFR3TXhwdjRCNmtLcUx2aTFrZSt4U3l3eW9KalhCbDlucWtVNjJocDIxR0tuZGZQV1VnejAxajZET0xkOU93NnBtdUdKNDRpN0tWWHg2Y0RVb042aXBSYTdzNkQ1cEtaSVFENnZJWjA1Y0dENDROZWg4K3RFbUJxY0pxeFQ1NU5jOU1meFNycWdSZU5CTlJMbDlVYW0xMmpiRUNDS2JDRndPMUordk5aSGY4YzNSTEl0cVE2M21scytRRWk1NjMyVHVrNjEwQUV3ckJnbDZ4Q3BWWHhFOWJtMERzWHoyaTJiYS9iRFlrOFU3K2NtWTdoZUh2b2UxZWk0VndUSGIvNUxvZXJiVEtTQTJlaDVKUmduTlBRSlROdzRZWlBNcUY3dk13VktuQ0k1eHFsbTh1dFQyRndETkZibmsreEFqZUV0d1hKWVYxVjRCU2tWR3MvTDFkbjlVM0tKcDNwTVVObWU1SFlmaGRBK081L2JmSXVuYWY2S25DekpCRFBobVNaUVJzRHlZZGdIWlJaMHBFTmtJNy92NnBWSEFYcS9RVGg5eUFGcVhORSt0SjRTV3VSbCtOeU16a1oxRVVUeFlWRTR6TmhKYWJpOGlHdU4vYlRQUFl5YU5yOFB0Q3pOM1RoSnRjNk5USUhxakU3OUxKejNWa2tXWlFDNXlqTEo2NUZTeGhwUjdyYjJXVjl5SmNTNER4V09HanQrd09LdHQxMlZDRk40VXRhdGFPYmdHYnF5Y1hMa3VWeDc3UlY2dWlrc01LVkVOb3lYWE5kUUErZTJpaERqallkUjYyckh1Mk9FZG5tdlJvQzA5NzRlK01TUmpoQ1Q3WmtBU0RXVysrNVBCQ3Z4UTk2cDFxRzgxNHhobEtNcWt1Rm5ZTVR2TStnK0FLcXlKWDhMaFQzMVhpMTkxamdkUSsvcEtwNWZqeE1ickpYZWUyRFBwdUJhMEFYMms3cDhLcTkrdldMbytYTmhEMFNmVWJmU0RoRnhGbkJCdGtiNU9OSHBFb3JEcERObFUvNEZNSnFjQjlBcHowcFk0RmFGRFoxM3Q4NjE5anQ0b0RNZCsyUkhOM2dVZEM1aWU4UGpDZE5HalUxRm8zRWZwbW1aQy9QbTlselM5a3hRNUF4aDdXVzhvcGtiSjg1bWVnRXl6UzZ2dEU1L1dRU3VuZWNFbFdNdU1pa0Q5NVVHZVBTYTFhS2Y3andZcnQwOUhtaTZTd1pmRVYwYURaMWVRV00wRXpBZkJtcXRuVkswRW4vQ2szcGM0aEJuMnJab2dKaHVta29RWlllc2VqWml5Y1BGWXlUSUZXRXJiZGIxWFZ1d3NZdHdWN3Z0MThIUytJOEpId3lxcFZ0VGFTSTFreTlKZlhqR1NHbmRPbjQxMnJkdjhvOEhGOWM4VHZhSk9leXFaK3RtM1pLdmF0aXExemJVZWhOc09ocHF5dDY3ZGEvbHRkQ2NUdXVsaFFjUEE2ZGx3a2I3WStyTkRUVXYxUWRnRXNQaTN0cnFVYzl1bW1MdFJUaUhrajNGcG03Wk1reWc1NkMwMXRwNW1jVXM1MURZelVUY1RUalZoTUorMkp0VEpXdlVDWjYwZWxMV01nOG9xOVIvWkM0Z3dhTDdVSEhvS0NzS05VdEtHV3Bjb0xzWnVMRUEvMWJJWVBxT1pXZm1hSU80Z3ptcXMrNjlFZUFiYzFyanQxS0lTdk5iMEo3cUVYa0ZlQWRHNFVVVlk0dit0S1ozZjJIVFQ4WEtyTlE5UkxZcnBXVXRwOGpqN3B5Uis1L1Z6VDgwSm4wRWxFQU5paytNSWhKL2ZyeHNhczBpem1ROW10RWtQZk5JZi9KMXROdHhMVC95RlVpbHZjYTdtbUZwQUJUUWR5ZnlOVnZRSHV3MW5RQitHV1UrQTdMUjRFRXBmaXpjeG1oaTc3eUw5N0dZcVlMYnMrK3ZTd0l3ekdhZlduMmt0ZFVVMTV6bHNFa0dFOWRsV0UxUUNidlNSMWMxOUxpZm9yZnN5Y2NDOCtvR2owL2dRc1AzVnV0TktIOGVTNnBCWWErNTNUVXBlT0Vab2E2VXJtd3UrZ3JTUjFUNnh4VjBVNUNrSHRGT1NvT3U5d3ZBK3llQnVKbHRNU0ZFZDhWblV3bzhwN0VBZEJkejk0OWoyTXkxcnJsUFJpOEFjdXY3REF0SEhqRmFuNlFlYVlRSHpBV2dxbC9TT3FBVFhVZkY4bUlYR3pVYjI3Y2JXOFV3TzdTcVRva3VRZmNYYXJvYzJHRlI4NDJIMXUwZUJuZzRaakM1TTBYK3VWV0NLN2dkci93WlVpcUtEcytnKzh4YWZCQnoxamJsUVpZQUVieEpFY1h4bWNXek9OaTdkRDh1NWo5SStVdktwTFBEZjJNcnpidFBudGZ5ZlVaTGxpSmJRcjhrQ21KWmxjbkp2L0xtSUpUTnJJUzBDQWJtSml0SDFTMGoybzIrYnNhRkcwQTJFNFdBeFpQWFFoMzhGaU9tMlVHTmJFMHl3ckxmMGNybEc2ZlRvdEZYc2p0N3BQTUYraWpFRnUyMk1aWmdGY25LS2NPS0ZWZ1JYMHlybyttV2hjVUVVQjBOSnlTWGRSRXRXMkRMTitHWGQ3b0h0NFFTRnpYb25PdmpsR0NXL0oyYWFvOTVlZytIVGorREFoOXZ1MGx0ZG9iZVV0UXBrS0NhYmVRMDNELzVRRjhreEhrMWgveFhwQlo3eEpRUXlnMldRWE80Z25nU0hZMUFNT2Z1VGt1TkRCRjlZaTVwclBaNzh1V0dmcy8yTVpVNkxCcmZ3cS82V3pSeXZqQldCZmp2ZVM1SGhWdXBVMURpU2RrUEh3YjF1T08zOUducms0WXYzNXVuNnU3b0w0azdYcXhGSlhRb3pEMzZQOHJKOG5DS1BXd0VTUXFyeVFXdHZMZDhQMHNPKzkwUEVrbFdRWnFRbW5qNXZxeEZYMGlkK1BydlZKTHhTUzJTZEVYU0htZG9nZlhLOGo3RnhyNXVZdVdaNG1TeGRkRzFpLzdZdEFKVk9PVzJ5U3h6YW1oRkRtbjg3Ym8xSDZqTlJQUXphNDJGU1puNXVKN0w4UjVzaDZLTEhmVGdrMWZzTzJ2N0FwQXFwSUk2SDZtd2N1L1VOTW5aRWE5bUMrNlg5ZGtqZlRDUlpyL1kwR2dZQXhFWFZHUmo2VnFJT01MVDV2SVpkRTVHU2xmcVBaSllVWG1DL0t6eEFYWjROTG9ReTVwYXZqL0NKM1JMNlB6NzhNTjUvZU5vdWoxNnArWmptcWI2VDc2R1hYUVhJQ3JnOU9jdkkxb21UUlNEelBOOGxmOU5WOGZSYWdwT1BKTFphcFlFSit6cENsR3lzUnJKcXJ3a0FxbDl0eEgvcVlOR0pTRVQ0K1l6Q21ZeTh5UFN4QkZZejBVQzd3eTV0Yndmd2c4SjFWTXVKYkVQa3UyYVlJTnY0ZUsyY2l3b3lQVVduZjhqZkxrNVl1WTAzS1p5VkVWZnhQenhYU3ZwZTJ3M1NSWWIrMjkzYTE2dkNPeUwyamNiYWNKVUcyNkxueDhZZktTTUJld2RaNlBWeUdhSEdNRDlEUFJzYmZCN21oVkZDVnVOZjRwVTR2SkxhWjA0OXJ1UTc0TUgxQ0g1NnVJUmhpa256aXRxWEJJYWxhV1hJSUt5MDZvQW41eUttak9JeVo5SlpmSGlFQVlhQjZoSCswL3FDUlNHSWhSSEdUaTJWeTg4WmxVM3pJRXFjOTU5MFBNQU5zOXQxYkVBc2NIUGlkMGJJZmtsUUkrdTV5QThHeXZRcnJTUWNxc005U2FtL1loUGg1VzRTdlpldE9TV0dqNXZ5QXhIWjhuMW9Wc3ZlR2d6SzZ1RE1TK3Q0dzRkWHhZblFZUEo0MGJycnFBWFRmTVpDWnNUaXNQTkN5K2VXVXYzZ1RQL21VcFMwZHdYTC9rbDl1M3JEbHA4YlNsT2ZOeVBZc1VkVktXVU5HRnlBZUw2NzEybDEzK3dKbjNqT1gwK3JxbFJ0anNVSHZMd1pBSkhWeGx2UWw0c3ZvVUxMQ3pwd0hCY0NwdU5hZUdoZm0vK2F3TFl1ZXVsR3hjU1VmNVlGRXcrVW9kTDRjOXQySkVtQUorUVIyYXl5OFpObDR5VGdqQThjcVNLdld3d0lHaHlZVmlxTko5RUZYaCtXV24yMkExbDFqeXgva0M0ZEdRZW8xQkNCN05ubjJJY09yUzFkdE8wbHpFdkxVWHBLYzhKWWx6dXR1bjBEeTgwOG0vMzZKc2s3cG9zUWltRnVLbTAyWFV1WWcyZGFCUHRna0g1N1oyT2FYdGJqUVQ5ZitOSjBFQXF2NTl3ekdRdlNSVDI5NlBBdW1DZjB1OGMvaVBUR0d4TFVYVDBiR2JtL0lKbjVtVHVxVjNpQzdLc3R0S1RsNThuQkR5aVVxeUF6b0pDOXNRVm1QZzBhNGtLV3BYSUZTUU1KczlFdnRKV21nSnpTNlAyVXcxaXhKVGJxaU5oWkJiVjlCNTFEM0hYYVh3N3VZaDlpdkFEZGJQTE9ta3ljZU9CSmNLUGJUa0JicTRidVR6LzVXdG9tekIyZUZva0VHR2t1dXYzckF2V3htZjJDNzNMN2VtRUJNaGlpZ2NFdUhtYko2WnlqWWhmWERPdmh4b0JyY2pXdldONTBvcU5WS29pc3YwY0tmQUJ1bVFuSEhNam9VTUc1OEhTaTNjOSttYTJZK0MyenBWNFR6Z0hwNUpqOTVPb1Y1QU9uaTNtWFpudTBldDFoaC9LbG1jeUwyVWE0Y1pPY1A5d3lMU2U4THM3K1Y2bFJ3S3N3b1hJM0pxckJQWmV3YTNIN0c1TGJTN0wxcTQ4dDJBdVVnNXZvejVUc0hnUnFsUGJiQUZoOWkyQ0ZyNm42ZzFzVXkxZHA5RFdSVTNYcGZBNEpuU0w5NnFqMGpvTG92MkxSMFZhTVZQVUh1Q1dQUGhYWTUzUnFveTRxK2dXZTY0dEpOZ0ZhaVFVbURVVXpPeTRMUkNvSlhpU1JOOERJNzFzWWlxUU9tVGJyeDNpL3VVV1V1RlB5NGUrdkk4cmd0eU1JQUo4WndYTFRDMC9yWlFsUkpKTHpXTkhja21zeDdUSWt2bE9LSUVzd1VETHFtZG5sMG1aeGVlVUVDL2szbTZjY1dMMGh3SkNTNnpzUlp0Wi91elJJSFdEVlhzNkJLS2RMa1pPZWxHQzU0ak1XU2FNQmRyOENjNGJRRW9aYXJPMlExSTAySjIyWWkyZFUvSGFDanlFOHRlejVoZ05vZHJaMzB3WTNOT2hYUU13TmRJM09zWm5mUXRaZTBSQUxwRlhYYUNWcWViUWIySmJQdGt6U0FCb25kZjhodi9ZK3N1alN0azg5U3FFRDlvL2JVSGVzN0o4SDBjb0NtbUpjbi9tbUloYVl6YmtjT1BuMjlIYjhYN3h0R1ZWY3hwQkpZZGZhYzN2M01iOThOWkVGcUlabDlxbGZ0VmM4QVZsOGhrWXFPaGIrTXlzNzB2VUdlY24yK1l1dlVoOWM2Slg5bUJHUUVBQWlXQWhEY2ovdStKT0E3eFZMNENBVitpdTVXTTk5cjViRGwycnJiT0RWTmdiZjY1Y2lNQkhWTGRXVUVmTDBDOXVtQnlyU1hTRG4vUFp3UllLUFVwYUZaUnFmT0hFR1NSa25MWXVYWWo5Q0VPWmtPSkVwVXZhZ2FVa0gvZjB1MndadmM1NVVtbTVlSlUrbXQwYVJNRWtkTTJtY0JGQmFCczJvbWhKeDg4N0FHaG9uREZFRURFaGFJc1k2RHNWaVlaNFNxTUxLTkNyZElRYlNjZVpSdGU5a3hlSDhNTWdxNFYrYXMyS3J4TVNVKzlhbC9Gdm5sVU5CeG9LaDYwSitaZ2hURXZqSkhpT1Bkc1Y2KzE3ZllxZTR0ZWFEU3dGeHlYQWVJYWdCdTdxUFc1ZUplNjhrUVIyVDhZQjJlS3E0dU1wbTZ1ZklTVmNVMzZ1QTFWaUEwN095OVpVN3lZNk8zU1lLenhUYldRcGZPd29kK2puaEFjOHBkRjJ6ZWFWeTJiNjg3TUhsd2JQSlNpNCsrSThhRkt6ZGdmRHIvcUNQVjlGU3BHS1p0bWIrQys4WTJpY3NoMjdqRVdmYWZrcnRHak80VFdhOGMxRzJxNUgyUFlRUWwveUZlWDZjb3BDdEg5U3EvVEJ3ZW1ITlAvK0QzZEZPdnRUMUc1ZnVTcmtlZXA0dDN4QmF0UXFWQ1RTOFlkeG5lT2dZTWZoMnBiM3VoaWR3U1A3VStWcjUzbXhZU29IMVBCS3N6UkxpK01Wc3NpTGNBTXpJYVU5bTc3SEdmU0dsT0g5NGhOWXJhR09JMEJFaE5vc0JKZ1ZlVHhIMEptZDZNM2lXWFgrYkd5UmhBQkxCSEJqY3FoZkJRb3FYaVEvbDc5Sk9UTWVGMkFxZWppMm1BL3d4L1JFczJROTZLL0tXalNRNDB6MDdXSkh3RldEY2FOb0FPaStFQThFM3l0dHE2R2w1NElGbFFUZTdnb3EyN1ZXTW5FZjhPZWxpRnVBMmJ2SnpMSW94S3BqNVBJTytLZW1zUTJDWHpNeVZWZGl0UkUwRXBxUjR2aG5UblU1cm4wVWVFWDV4M1BwWHQ3UC9wWmZDRWU4azViM2g2RTF2YzRUUnR2TWQ1MFRDYTNLS2VUQ0Q4ZGtUTEtrR2l0NTVqYzBGRXFGcHVEZ0lZUUFHNFMrVWE2T3pqUjZ0c0g0RmxFUjE0eno5K1dFbER2OG8rRzl3ZVMxQ3drTG90TGJQRlFJa2lEdkxBdXNoTVovVlJnS3JGUzl3Z0ZIRngvUkhZaFZ2M2tLRkRBdFU5UkFWTkQ5NkhlbmVUZ0s2RG1Td0pZVTM2bnZ2eUJFRnpmaGhFRGF3ZHlFZzRQTUdMR0J3bFVrQ2RpYUtkMlJYZ001SHhjVWlwVFVOTEJyc2VYSmhURmJPQXlFMVdqUmdvbGhFMzA4TVg3T01PZldidTFndTl4RzFISXJySHI3Sm1ZYS9Hbk05Ylk2VEdBZFB4djRsV0EzK1AvbFNZQjNUSEQ1TEgrVWRVR3lSbnkxTEl3Njlzak56cktWQ1RVVlJNUFdTQ0cxTlR5ZWdHb284RGlxVGU4bnJzMWF2WVpRZktuekxTT3hlS0QrWktJS2FJV0M0SDQrRVdDeFZrZ3ErUm41alBjWnNwb0tDc3VBbXZPcTJjTGdmcXRVdFpkc0pYaEk0azl2cmMzcnhNcDJhRklSVjlGcWFvQjNYK01YUEpkVUJ1Z0gydzRqN2tWTWl0L3VpQ00vcFF0a2lEcUhST3dNS0Mrd1Y5SkNaWW9BekdhZ3ZpNUx2RmVBM3VBWWY3UG44YVJKV0VtYXl4eFR1WWQ4SUwzTVBwUGg1MGd2c20xSmVTUzFCWm1CK2JHMmU4K205YVk2ZCtkNmpYeXl3VndwWUxpeGRSd3RXNXh1VGNhbTY0SFhybnJhb1BlcmRwSkorTGJzRC9DY0YwMU9Fclllbmp2eGJKNXI1dlVCbVl3d2picENTQkdHR1BMS292SmcyVDZuVXh6NFdZQmRMZDB2U0FDeGpWdVdBRGNPbFhRUVJCc21pTGZxSlBqSVFNencrYkR3eno1T2NDMWlGbHdCSUZrVVFNeS9VVGtsRXljY3ZBQWxLYk8vd1RuSnIvc1ZpMnZ5UGtjOWxpVi9wc1IxNTZldXAzeVRQdU5ZQmFwRTFRM0hTbUlxb2dLUEZIMVBKMGZYTFM0NHVSSWFzQzZsVW94UDk3bnJ4bWdnNmNrWDVwRGoxSlRGb2JtSTVkUHlrSjczZWZLWi9UVW04Y3p1RVFTeWx2NWJtN081NFY4bU9YWlhmaHNxOFkwYWdzZWpLemVIQzFoY2NadW1qRVphQkk4Skp2TCtTYkdHRzZIT3U4WHJTRk1PdFhqMXNaY0RFcC9sRk9VaksyNzJXekpuSDhmWUptU3BydW5KOCtVbVBVT2JUVThPcjZYUVMxQTZjeEFzTm9uTGhOb0tXSU01YVFCZTBGOFM0UHkzbUc3Qy9RbmFrSDNXOUU4ZG5SeDhiS1o0cUE4Z05wNnlqU0RoS3pJYmxzY3Z6N2FZa0FBd2hXelFwTVlsQmhRbDhNelpxNUs4Y0d3OW1ZRGhBZXBsUGRMM3VZQnhoTE5NUitFaUVudXRqTXl2NHVBWUxMLzU5LzNCSkc5NkFWdllURmhsZlJheFp1bGt5ZGNySmphUFlBTElBZDh0S294NE0vSkp0QVlKTFZGU0VxRDJMcEtZUzRTb2EvVzFLSFliTTRmTmhEcW5FcyszVEVNY0dOS1FWSCsxUExjZlpvcG1uU0lZOUp3QVRUZWJ5OWZKS3JOeGI4WGtKSzJRV0pKNkE1TDJpeFZ1VVFsaFNpZ1VTaUdjczRsSXF3NWZyakVtbGdKcW5Wa2tPaldyWlVWV2V0M2lWTEMxS0xxOWp2OHZ3VTNoV3Z5VWplNm9BNnNsNkEzeHljV045dUU3dENpMlBtamduZDVWeGpjSU1TcE5lWGNobnRCU0hocXZUQW4xL2RSbkFmbkZQUTRORzFaSXU0OTk4dnhLNU9waTRKeWxnRERCT0xJZm5Eb0VwQ2orZW5icWVLL0ExUDJqNytYUmNMckNDTGhseTVJaWp6Yk5TeWVOUEwyNHpQZmpjdmduN2hJaGc5R1VlMitOSTNYK2NBK3VwUE9jREtzb3JMdkhWaVVaL1hWUlYzNHl6RjdnSEhoK3pRb0lxSy9veTFkcllTWSs3NEp0ZFU5SzRwZHBwRktONmswSkFJMTZ1UlRReWZqdnlySWY4R1djdWV5ZndteU5EenY1VHZYeEVMZVFScXBqTEVvTDlOWUxSOGdoaDF3aDJPWFQxN0laK0RjWGMzV2paS2RqM1pKWFcvTUkwYVBSa0NHTTNzc3liblBaaGMyU2pwYUIxUVU0YjNqcXlYTUlFc3JOK3N0L2RPUEprNXh3eXVYSmtESzZib2krbE8ydS9RUjVTWFZWQ0kzbGljb3ZuK3A4VVYrdGZvaHJTWU81ajkvUUdVdzlTZHB2V3JSdVVacC84ZXFtMEJNeFllUmtLUjk1MEJVK1pmUk8zMEpiZnR4NnVGekxvWG5EYS9FVkJVRklFL3dGL2NicHdkZ0NQOXJrMjhsNTNXTWhOWmlqRXJ1R29ua002MHpRZERZM09kdXM3K3YxaWZ3b2lhRzdoODhSNVVwVGhMNlgwaTJtNFpGendZQUJQaXlzY3BQZ0x1blRzeE8zUHZGZGZIN050U2lkSktVV1p2OFB3d1pIZ0RDR1I5eUI3clhRdEl3NkdXTnY5SXo3WmZOcUVJamVkNUd1OEtON0YxTGF4ckJUd25XSXJLV1ViYXhnaWxKNXh2cFMrNEZjc2w2ZklRTkduWExTYXJUYjI2QlFuRnBleUNQendsVktNaml1cGhmWkgvNFZmNmtNcEhxOEtTQUs0QWM2Rjd4OHFTdUY1L3dkUWpvMEpMZStsWHdmam9xcFMxMWZvZ0E4NXF3c2NlVFFvZUVBRDhqL3VBWUUzTXVZNUJad3NMREUxd3htWWR3OWVrTzR3ZXJ5MUNpZ1Y5STcyVy9PSzZpQjRRaWlaNmszc3FQbmV2aXpMZDEwVEZrZ2EyUnRGdlpkeTNicy9tMld3dXF4b1ZaOC9jTmpsakYzdnR5SDgzTVo4VThDRlZPKzZtL3BVSm92VklSMnRWZGptUGVqNURGa2tScXJQTExuV0E0OXJkNStEZlBSN1Vad244aG96Mlp4WkFPSi9BWmFTSFpNSjYveDJoUVRhK0tDV1JWeWcrbW14LzloeUszem1JcG5YK2Z2aVd1NjNBWDFNS2xLQTVWTXBLRlBCZ1lRMXAvbHhZSExSMTFSSVRnVU44NkUzVmtMT0NubDJvTnBsWUxFd2E2RHVlSmFrVFRsT0NNSU4wd0VPT1BkRlpEalo5L0drdU9TYzd6TXUwVytBS2tiWW1aRGJQQlMxS1RKOEtUcjZMRzRlOVpxSytRWjl1VWZXUUVqRTZqbGZaaEIrL0llOWk4N2FKd2ljYVFJV0VpVEREdDJ4OEtaNjU0NFdMVE9mQVZMVDNsRlVnQkpiaUppbXRSSExIM2dtWEZRSnpoRWtSSS91a1gzRGhYQktERUVEZXJUd0VsdHZNUHZGVElxaEx6aHdQc05UdXFUMWJneDVablhLOEdSOXIwMXRCNERIb0FydkxsNzl0RzZqL3JwNDNDODRra05lT3NKQlEzZ2JqSFdjakV5Ti81MzA4U05oQjdWOG5hYVJFVHdXdzdzRzczWWVtVWV3SHBOUXFmajMrNkYrdG9uSHVWSDg4YkhOelgweE0zamFBRm1SbnI1NkRSd3ljWC9pWThac2JYVi9ZREJIYUUwZXprMElaOVN4bFBQUGhRNExEZWg1OEI0OXY4c0hCUURqRkpFdDI5VmZUeDkyaEhOanQ3c3V6YU40ZEFKYXZMUlB3ak11UWVRQVRRVW5aK0RxV2paKzVrU2dGb3pGSDhHNUNjMUZUNHJrWk1CM2d1SlR1aXVWaTQ5Zi9saGJIbnpWTlpVRC9GN1JGVkFBSlVKRmVDdEk3bW9PUUF1L0JFNUs2QlRuNS8rWjZLSDFvd0JBUGxLbmIwRUJpQUFJYnM5MG9nZTdySUVwRlRWc3NrbXk4VkxRaEd5ZnBxeXFTZGpRNXVGMk41V2RyOW1iMTZQaEx5cjIzdUVTVmJ6S2RlTkRmRGR1dGR4dHgzNEdQS2plZVRGN284d28vSm1PYkV6MVk0RUcvaDZocWs5WFhNelpPTW5aaDBvNWdqSFBQcUYzUXVEaVZQTWJaYU5xK3cwamFwemx5NjVFY1dhY3hLbGNVYTU4WCtFOG5jMU84TVZ4aFYyNnlCRDU5M0hKKzg5RDlLRTdTMEtLK0svZXlPeitGcVNRdzNDMTNWQlZ2aXNEaTFvTVNOQWRMRnNYQUV4N0VnbzN6Tmk3Mjd2QkZTVE51a0tOazg1aWRqMFp1cllDaHFNYmFOSVlQdkpUdndFR3JWUy9FS21CTWRHNkhZVlVhb0lFVEpNSldUeGgzdDZwY01nYnRzSTlVa09mMHhQQXRuMG5lMDlZWW5EWWw3MUtXU09nd3k2S0d4TE9hT3gwWlNid01acmo3ZjkzK1ExekdVbnBNWWFqSXhuR1BmMm5pSSsrQ1FFV2YxOGlROEtqZGdHdzVtVHRwaWEyTUxCWW1MM2tzZnBEK0VOQ3JycW40RUtseGpaRllxZW91MlBQNzBWRWRkWTdhT0FVUHBQRVA2dWhhbVY1MHhyM0x1eHJBUnBGemFCd1ozY21FOXFuendkZ1B2RXlSM241TGNSNDR4VmdFeEFoTVY2eExRbjA5ZTVwZ2p1SFVHZUlnRkRyMU1mNEdrZzJIVE1YRmtiRUYrWXY0OXEwbmR0UGFKb1NodXpiUFA4UnMycDZRVEpLZHNsY0N3cXhneHJiRHA3aTJHQVdBUlBybFdUQWMwTXI0OVpLSTAzMEFLZWhaRldCYjA2SFZVQ1BLK2htZnlyN2NYQWRWaXczaW02azZ2MTFHdFZZb1FGOEdmVmJxc2p2RFQ2QkE2V0Y3TDJTTHJUYi92RUlCVm5DbERXcTdSb3JsN21BeW1sdThCUlFUTFVqUVRBc0FocGxoVjJKNTgvTld1Qi83NUhHcThKbkFmdXdLK201ZWtVOU9BWGZtRXB6SWtYaHR4NEdYTlRoeDVBbVBpaXppTStVQXRUTkhuVnB6QU92djZybTNQYm8yK25uSkVMa2laKzNLM05oemttb3FhaVBOa285RUJ1angzVmFaanJRRmtPVTcwRkNYbG5EdFpDd0ZCWWJ1aFdKMmQzdDQ2eVpNOGo0N1VyMXRZc2o1RUNtcWM5dlVyMnVtOXR3VHpyK1NwWmE2ei8vVnRhbnFJdlVPRzFFYjVoR1hYbDlDZVZ6a0N6eFNJVDNVck5qNWdGL2F1aTFmQ0ZzUjRWTnUrYzRISEphTFBla2E1eHZCQVI4QjFNSDZCQ2NpWnFqMEpFZWY3c2dDNTA0dGR5TVNUTHVjdW5zdCszSEFoWkRGTlNVNjZiY25IdjhFOWpzUXdJTUUrWkdEUHVaV25ieXpkRzFMR3Nla0ZMeHI2S0NRTWNuNXlvRS9CR3pnUklRME1QUGJKV0lJdlRBQjdyQ3hmam5iWk5QZ0lVWWVnOGxqYUxjNWtiZDEvcFhnd2pIZGFzQlFaN2lMZGREa2ZXZXc1azVzYjRTUVhtVFA1SVpIV2hFb0psNlJDMU1DS2xLRUpGcFYvYXBBRXlxMS9QUlpjUmEzdmRyTW1DVVNFOVR1STB2bzVWSEgrVjRhazBqL0FXMUtrL3UvUjN1TVZQaEIva3Fnd1VPNWc1UHVmNGN0VXRoWDdMZTU2K0t0eDBHWStzTGFmRElST0o3eFllNHhkRjd0dk9KVW5YUXFxMERMd2tJK2tuM2FVSU01c1FXaDZBcGxuTlNEbWd2M3VNVktYVUNHeDhXcEJNR1duN2xGSjRnYnpVMWI0RGN1WWwvYTFBVzJqMDJuakt2VHF1VmdxUG9CNkdVaW51Rm9tUEdNWE5RWDh4TERQcW5YZnM0NHltZXZzZTZiNDZmSHlhTzdOY2l0b010L2oxTVJGRjJrdjMyN29UVUVmbVJBN0ZWQm5TSEtkMDd3ZGJ2c1dBVEVnTWpSUU9lTVV0SHVkblU0SmNhbHlGRnhaQTJMdjNxdFR6a0dLNnpuS2FlWW1VSlVISHpkcTZFSGRORGdNS2VXZElCRGNqU3RJWXdVcVZJZnkxWGFYRlk5ZHdlN1dOa0RqZitrejJDM0JXMzhyRHY0NjVGOUVRTXRtdTJJb3Rzc2VaS09XMDJ2R3pLUThYM3V1TE54dTExRVlJOGx4eEN1dnVMSnhlTnlBeU9hZjBuOVdOeTcyNVNETkl5aHVURFE3c2llem1OenBreHlaYVU0S2hIdFQvU3pWZEZRRzBJRFN5VjdCSHpZY05FTVF4aVJkT3UwN21ib3lmNVh6U0Vjb0ErYkszQ0FGM0Q3TzNkUFFSUk1IZmFlb2s2cUZWdnJ2Y3R4RVdhMnhwczNOTDhPb1pybmJGY2JNbjhzb2h3WFF3c01xbFJHbXJiQjdlUWxOZEo4NlZkZUVxRUphRExlaVV1V1liMWZLcUdtYndsRWhFRFMzSjYzSGhoL3dsQy9pRkNmNGlkMUljRWxqampGTXMzNnVaSG8wVUJxdmhoUXlmNnp1MUdTMjhpT3dhUnkxWXZrREpWdFUxdjg0Q3Bocit1SU1MdjN4Qms2MGhBaGRNU0Myemh3eDBwU0M4U0FrYTI0bElCUFRRMDUzNG1jK1pKT28xdk5jbUVCYWpmbU9pUThmck9UR3ViKythVUI3N2NiRzQ2UTFCRkovclZyK0VZWEhyV1FVdXUzdkJCWmlCN0JCYndlaHZGaDZhMFpKWXp3NDhFVFZ1anFCakpYZlh1WkFvS1FpRC9FTEhrc2ZkUzlZaUFEb2MvamhYM01VN09hQW0zdjRWN3pRbUp1cW1DeE4wTllPVzJzK3VTYWQ1eUVpdUxBYjI1TlN4ZWtRdFJJQkgzRVo2RldxWjhJTzNXYXRpQWRnblZ5dzZPbmQxVWgvNjBnMFlqWlBINEt1UndJQkYzSXZueE9xcFR2WkFoUkNVelVyZmhMQVdlV1hGKzlXOEozUmZIKzlLSS9LTTJUdnYreXZkeGhkK3JNc1pvb3JsUjZseW1uTnc2TFB2TXY3YS9DNmRKWS9rMmRRT3NEZjdpTTk3a01jM0NSRGdLckI4N1lLRzJrKzRxZ3pmN20ydmNrTTR6NnFTSXpHTDhjSU9ueUx1QnpxLzlUMG1saTh4VVdoM3pZQ1BpOTEvTC9nYndpRzhlbWg4cnJzYUsrNlB4bVdPTkRuNE1JbjhrOFdQREJiNXRPSVhZb0tXYmNlM0twbEoyRlg0VFQ2ZzFKanNJRlUwWDhwWkhJTmdNWlZkNzJTbk9tNzV2eDNnbDE4UDV4eWFEZnIzOUV1VitsNG5GekgyT3pqdmNwU2hSaFNDMmdLMnFzRUxrQk5pR0luSTZBWkdyRTFjVVB3UUEwMmZlMzFJRmw5NnRzODJMQWlwRXdadk9wQjJ5cUNMT2hZamlRckNtbGhzdytkTkk3WUpYN3VrS0dpSTV3M2dKSmFTWWd1a09UaG53MlFuQjRKZmJhRE0xYmpvNEhwdXBwWDh6QzhDcXRMTTJPV1BuZnpkcVZUbEdQTnQ3S1VQTnhKZHJnRjA5VjF1dCt2NHdOMHZqYWVuRkowcklWWWFCejBzb3hBNkFFMjVhV1UxaGIrSFhyNlI2bVB3eDgyNG1XWWJlemFFSUVTYzBDZ0VCUndqdXVUZjh2clJmaFZjcithblRhemE0SG9pcDZ2MWpSWUFjL1F6bWU3cnA3MHJrSFdpR2FJNHUxcnVYOVZjK3NUZytuRkJPRU4wUDlmVU1sQTJadllZNS9WQWVMdnpySjQ1RTkrRFE0NitzZWpxTi91dWlhZXZDRFdnamFnYmFGeGJKN21OWGlHelNyVzZIR0xodFJjdUFGZ0lEa0RPTVB1VDRkcVNwUk00MG9ibDhyMWJzMTFBd1FWOXJXdnNmZ2x5c0VCdDlMa05wS1Q1eG0vbzJZWDkxSXpiV3ZuVXJmZzlXTGhJYXoyYWIwRE1hME45ZEkvcXRFclZBMHF4UUdYQjIxMkpwRXRLTEt6WE5OcDRzYVR6SzdyOVBiL3JDbHpUa1BsWWJjN2hVWUo4eFJmV05XN0l3Sm1IU1Z4RmlIRDlNQ05lVjNmeFljL2VVK3lQZ3l2VXJId1FpeDFQYnkzdVVtcTlYcjJGSGdWZFNRQXNjNFMvUllDUDgrT0ZNQUYvajNGVUVlcFdGY1FIOHpwUm1EMWx1OXhrRmJEWVRWaUxzL2Z3UmFIMWtpNVN2YzBING5xMW42VlVhOVBtS1ZRR3UrUERmdk1ya213UWJZWlRaOG5SQlBVNHZ1YXVPeTFtbFZFR3NrVjBrWjFOZ2FDNW0yY2V6ODRKOTROMEo1eUNoZi9sY0VRckJOeUo5a25kNk9DMlZLUzEza3hQa0dlL2FrcFFYeE1lNUpFcjBGd3hEUUpscG1lM3VHZkZrRk5uUTd5cjIyaXE2WVZEQ0JBd0FuQURGT0RZTHhzWVlra1B3cjNDdHZlUXFSY3RhS1FJY2xiRUN6Tm4xWUl1akRDOTBoZTNjMWdEYmZZcWZsRVYvV3ZJZEhJWlZwUEkrRU5RYk0wTFZOK1FNSEcrVmRHaFRwUllnTjk3NFduT2NMQkRnaEYrd2tHN0FmMFBlNkVBUEFOMU9pbjBLZkFLajEvWTJudzViMTR1VWxMWUlpVHQ4OE0rbjducEMxRTFJSnV3NmRVQnh1Q2Qvckc2U1hzSGZNc3B5RVc4WGp0WDZORmZWYXEzZkZ5M2VTZGt5QkZSNUx0L0JnM1FJYkRCc3ZMa3BjckdDNDVzZEJmSFBqWkhKdUN2MXNFQjR0M3RIOTgzQnZTZ2pYTUxCT3dEcVU2QTlRZjNJQkJ1THoxZEUwNEFDczdKRUhiQXV2MDFrZ0FhaEluWm9XMko5Z1NSbG9LR0J3S3ZCQVUvTFYzZWtnanhUbXI3ajhaZVBtTlFnV1dmaWF4N2pyOEFvaTRBYkNsTldwMzdTWkVod3Ywcm81cFBCTXRGSTJKTytsSmZueHdXMnRqa2xid2RVRm5hVWRiUXVGaWpBRkNCc3hoSlZidEQyYSsyUUlJY25sN2RGZzY5UDN2Wis2V29xdkM3a2xteDZiRE4yY2lnYklVM01pMjExVzFFQXF0V3pEL2paNWlvOFFPTHozZjljWjBuQWFEYWFWYmlzMGVOMmV4T0pNNUVXOWdKVWEwQm52ZFh6NjZxVnFtNDgxVFROSWd4clRYQ3J3eEFMK1ZiNmF4dEZsRkFBSklzR2VFc2taMkxpTFRESE9TUU5qL2JzK0loR3dmVXJPZk9EbVdaREpQbXBaZ0NpOGd4M205SVlRYWRDaytYMm9zMldHZlgrT2cwWXY3SU5Ib0hYVlg3RFl2YWxYcmY4UUw1Q1FVQWprVEFvSlcvVklHeFUxaXRTdDR6ZTNZWDlzZ0krTEtCSHRaL0MxQnQ4Yzk2SGxJTVR3eGczcHdvSDFhRmdGaDliRzgvdmdqMHcyMWR1c3krYzF5dG0wbXJkVzhzL2d3dytBeE9ac0pGbFNXeDBLS25nUVpiWXl4YlpiWnh6Yk1BK2t3VkJ2WGQzWStGU050TFk0S1E3U1cva3UxZU56YlZmTExiWFFsN2hxcHdFUGxSZms0VDNOZ3hzaHBDN0NWSkltYzdlTVA3aVBOMi9QUHB2b3F0aEVzUFRsVXdheHJQTHFWZjRjMUJaOGZ0ZFhnREo2N0l2Vzh4N0txK04xODZzazV1eGxZSERYVVBrb0J2SVZpODZRS3plbGZzQlVhb1pUQnlwMk0weTIzYlhETjVGazNIdnU2T1NaMlM3cE9aUmhoZjR5RUc2VE56ejhhcmcwZ1NkZnBjZDlSSE5hZTJjR1AzSHR3UXQ1MllZdnJuVmxsWmFLbzR5L3pPRXIwejlyUURBZG5XcHVFTG51OTdUbWQ3Q1VIb3pHaGlFR0hwcnhZaS9mYnA2QUMrazhGa0pzaEI0RU1rSUZnN3JxYldMRGVRYy9NZWNNeG5jOW10Y0NUOTZLbGM1N2plL3hxelBBN0Zxc3N1U1NBL1VneHM2dE5waFNXWXVXMFVaZEFQUWE4UGN6Q3kvRGlna25LK3F3Mlk1L0NXdlB0Z1E2ckIwc2RRSk5McDh3TVZYYWJrOU9TeVZpOVZ3STVpd3dQZEtocFU1RXI4SnJoRGZTRC9HT1VTeFRYTnc1MW45MDdFdEZEVTVNSzRySC81SDd5Z2lvWklJQ2ZUYm85SDRTZXN4SW9DUTVpOG9GcTlGd3lUUVpiT1B0VTRzc2xOMEhNdkppY3F1c2poc1BhV1ZRZzF5YjVGVFBSVUVSTWVqRmFRaUhZbWhGcG1xanZrMU54bWtpbjlCbjF4K0NwTzJQUnJidHZjTG9XY3RFQUNYOG02VG9ZMkxqYTVxWXRDSFllYWhJMkJseFVTMmE3UGpJRHVBNGFTOTVpdExwZDd0Q0pSZnlKTjhXWnZ3aGt5REduWS9ibzZ1N1pwR3pocGFXSHNQZnhnbFpQbm93MFk1NzhKZVFjTXBnSHI1Z1BzQ3Nxb2xzVDZCalprbkhwWDZySHJyZzFmV1kvNlZ4MHFtSGNUa205d0ZRTWh3VUVZUXo0aVp6THZXdGo5YUNGRE5BWXA1bFhwSWoyZFg4eGhKWTRnaDhTVGpLYnErQzd2N0pNdmtZdWJodmtvK1BBR3BlMHRxaktJaE1pL1JsSWR6Mm1FY2dPNVZzaVcrdlF1R1d6SHRZVjFsM3NmcDd1ekJjUGVRSHJaWU1zMUtmaHU1NTgraFFCZEJqb1VYUndmeTdrQ2M4YmNiRW91amRsTU1KSTdmM2NmNlJ6bDJWQTk0aGszeTlzSkp6dm9IbmcwbGZZcVpkVjZtbHQvanBJZjM0d3FOYisxMytmaUZLWFlzMU9PTkFSVFBJQ1MwYVNYODJxTW9qMk45NkpwTzZ3RmhiTHdaeFIxZlE5aE9vMWJxaHVnZXNEbjMxdVlXK1pHZlFLbDhJdTkyTGc3MjVuemk2dnVMZWswQmZkU1lRZEhUekE1WThCZHJ0NHFoOENyS0dCb3Ixc04rd0ZCVHRoQ24xZlhvWCtDakZNMVpUUUtaLzk0d0RmRGdvQXFxbDU1YzFYSUxCWWVuQWtybkhuOUFsSnNlOWhzUXZSRDRFbXFnVnZJT0ZQaVltMXpZOEtIWFVVN2EzVnJxV1dCMlcxQjhab1JZMUsyamtiZnRlaHQ1SUJFOC9YTDJpRjRMQmhZUDQ2eEF5UjV2MWhkZ3hZNzd2V1RZVGtjSCtJbGlOK0hRaUVXcTlzditFR3N2NFF1dk1nTHdTdjBTUlBHdU9jWmx0dGViTEZyL2RJM3N6ZlJ0R3Y2bXBVbERJSXRYRW1IUVRVUUpYalpQY3JCY2FlS21GOFFaTmY1M2hwVHkwVytBSFVXTWlLYWV4Uk85cnFQdXdhRUY5aUxlcmxpdHVsSHZVNlVBQUhqK1ZVZExpMDZMRmZMc2tTRmVtcTFqM2pUeEh2RU1rVUgyL2RVMFo5RDVrKzVUWGtFcURUcGpVeGFaWVBTSXJmWUdkdXZXTnFNTWZlRUFKL0wyK3JFQkd4Q1ZFUVFVL2U1SWNvS0RZa2J4QnBwWVpHODh0SmRSeEtXalRjYUdHc2hjd21OOTJmTTZkcG1kQmZTNVJqNGxRU2NDUnkrcTYxR2UrMjdXRGpvQ3orNjJTNVErTW5RbklKRysxcjc2WFZQVlBHS2trMlg1TXQ1K0J6ZzBXdU1rMXY2ZStiN3h3RVdDTlh1Y1dGNDVlcnlSY21KV0RBbTAyd3BCcVhSRTMzR1l1bGczTEEvTjNaSFNkdExjc1A3UTdRNlVoZFQzRGc5MTBhNlg3b1FkeE1VZG13WHJkVEk5OTJwM0NCMk5HZGNHeWs4ZFdxNGhRMjMvN2pJZFhjOURoSlUrUmtmT0d2cDlqVDRSQ2J6d3plb0FVTHRkb2Y4elFpTFRoRHZMUEp0R1RNb0FzajQ5K0dJU0RwVEtLWUEwcE1xcWRWMzhrSndWLzB4a2VQUWg3am9CektTaTJNY015R1VOMlcyV2tmaUFqKythWXU3bHl2VExKUitWTUNnSlZLUkxtK1VJb2xBZ0R1TVNINlNvdlhKd3owa0oxUXNuZFh0TUlTWnorQ2t0VVo3M201Rzl2ZCtweXdTalNYbitYaGN4c1kzelg1MDA5czFyTlp3cURjNGprUjIwWXJxREhCTm0zZmlQcjcwcE4wQXVKdytybGljNkllckE1VHpHcUloeWF5b1YvZHF0Qk0xbm9QZk03M2lkR1RFdXNEOTB4RndzTFQ1VXhabWVtWlpCVEZNb0xjSzU0Ulp3WHpMb0R1b3BWTzhlK2hGU2c4NStBUUMyUTU1aVpVemRLb1BaYVBJdVNYVm53T29QQjRGVmR5VlF4bUlqODRqeUp2VlVnOFlJd3pnNytUcllUMEpjRmF1Mk5oZGdWTnN1NlpWRVc0OWxWbm4zaktIUHVtU2xtT3ZjMVAvSVNkcHg2QWZ2Mm14MGxBb1ZjcjJnZU55b0luaXJLMHVkRHZTUlAxT2FmZlI0ZFAyTVFJQVg0VEdDaDlLSjlsdWpnczVpTDMvRHdmUTROdkNQeGxRSHdMUlhCeFpMcWlGbCt1Z21Ib0ZNd20vVUtFNXY0WDh2cmViSitYNW82YWdOdkdMVjd2cFZnRURQOWNKbHNJSVc3TmlrUktwMEs0MUxRWVcvT2VwK2FjT3Qvdy9BVkF0QW95SHhuQVp6SUtNaS9nMURBTzBpcEV6eEh5RHp0RVVvTCszSlNyS0pqa2pTM2o0ZEoyRmxLV0pXa3RySzlINThVOVdLYlUwS3hiVG82Q0syWkM5UkVzZjgzTDJoclhpN1gzcmo1SEcwbmhTa3hPc01pSldvTWU4OStZekRUZmhXb3FhSEt1Z2IvcitpZWMyNmxOR3liMmM4S282MzZpS3RRLzhvVSs4S093dWYwc21EdkJwOWFabFJvSkw4MklPZk12Z24yMkwzcjUxV1ozaHRiS2M0cmloL0pHYTR1N1BteUJCVnlNZVFaYmVjVkNDdU1hWVg1ZkFyTUF6eTJGeTZjcGpTZjJwQy9aNXR5L05QSDVPRDE2bnZoQWRpbzEwM0dPeTdNMHhzenJsNmVKRDMyTUtORStDTC90b09VVy9VV05RaXl3dkdmOWg3T1BNdFFTZkNxNlZTWEx0cXNucXl5clVmNkpBQ0duR3JBa283TzRPR2lzdTNLNjhvNjdXY3dNbktUajYxd2x3bXRWcXk5czVTQkREcWhZbmd4RUU5SkR6WnVzcjFXVmxxdXcxb0xVVVQ5U0M1MVdrRnRzT0lYdWN1Y3BMZngrR2FFOFdqYmxXTnllZk54MGZtWCtRTmkwMnVJc1RSTTFpRE4vNVpPUEZJTWFlditzdXZ3bUthV1lITk0wak93UWFiVDVVUXFlVUVHRVZxZDV0YUpHL052U2Q3QlhXSThzQUkwTHNnWUdoa1paajJWdkJzaVIzc0dLYlorWkNveEYyMzRMd2ZOZ0x5MzlsK3VESWQreUtmQWI4WjNoRzZERUdod1JjTGNNVks2VDhHbW9zdWQ3WjhYUXE1ZnNETkJQakNjckZhQjVwYjVwajFYWVphWUk0Ny9DNmNRZjBBeE15akcwUFUrcytZRDRPbzMxbE1DT2hMclRncmdrbTdEV0JwdXJrWmJjb1ltcWNhblVGWE9QWVdqbmNlT3RKb3UyRFMxUmpiWmxycVpmT2x4VmwxNHVESnBXeVNqYkpTeUZiNm5iSmVPTHdVNHJrWmp1K0M4NGVFVUdiRGdtOU1pRVBEUzE3K1o1WWxNKzgwaURrSkJMa2R3RCtGazFHWU9Ocnd3M0wzY0ptS0ZRcGpuVFZWbGp1b0JYbm5yZWhJTk9wSlBpZjlPSlN6RjRUNEZsMGY5VHhMaE1xQkdQRGdXbUtOYStrYllSQnJ1bzV0VzlFT1FWUldOQnZ6ZFlhSjRUVHhQYTFXWW56dU13c29UVkNqVEM0cXVIbWRNWktpdWRIcEljdmlGR2dHWEg3UmhTNUVjTmF4K2RlTWhrb1pBMnlia1l2cHlwc0hnd2VDSVNoTHdzVlpKWjZ1UDVOVmNwN2JnVHJpN3ZRdm1GNDNXUG1qbXl4Z2FCNjJweEduMXpMK2wxK00raWpGRUYwZWo1c0hoZkFpVUYrQVplWHE0ckdUbzVZWktqSVNvTjFNY0dPMWUvMlo3a3ZuWCtyNk1KTS9Za2JXbDhoS2JnWGM3SzVCQlBCVitwTVhxd2x0TUVHT05MeEFMMENOaFAwcVBXSmlRMUljMlNoYllxdEtwaWxDWkFpeW5oQzU5M3ViSHRJM1p1amlqSVVqeEJpaG4wOWRha1BVaXJWK1Y5eG15NE5YQ0ovMjJMS0NYMTVLOVZpaHpUVU4wZlVZcXkwZm1DTGpMNHpkQ3YxVk5xbTR6bkFMUWZBWlV3WDlXTEVtZHFyZ2lXU0EwUHhBWU9XQ2ZKV0tCQjNrc2NPcGl6eHFOOXZlRmZyN3B4cFZ5akxHWGhRVGpnaTQrVXE1VDN6TE5nSm85TFd0OWtmNWlpUGtNNGtHYzNLWnBmTHlpeTlXbGlmYVVEUWN3YUM2K3FwOG5YQzhRblFqWVpYaTAzK2dvWUQveU9kQktITVFHcERoLzl5cUV1MlA0WFVMbGFzcHZZTkU2eFF4N2pWc1NSVUJSV3Q4dW5yVm1vbmtRVzVGL21SMHk1MU03N2RPTjYzYUdjRzdBSllHcHAxZ2w0T2xER2Y0amtIcEUrenR3UFdWZ1U3Zng4dldOQVViT0E2d01hWSs2V3I3MUMrTlJIZFFneksyLzJ0U04yaWRvd1NaSWowZHltSm03bDd4cGtUd1JqUWlyL01TcXVxekZaVFZBRG95OVdJY0RrR0dyY2NYakJ2RlJsaUNJN0V0aTBXOVRpaFpuN3BkTHUxcVlDZVJNdURlTmRLazB4bUdQczFidzZKbG1sbWxZV3F6L2VicXJTUUJreGF5RFRlMFZKdFd6UXBuRHZjdjhOR3Z6elBHbEF0WG5rUTlOZGVDUUFYbGRyNzBWSjdOTklCeW5Qd1B3bUgxREViODNrNmVzaUdQTEMvT05VVE9JYmo1MVpqc0ZSOE9JaGcyRlhBWHk1akY3cXhDYmNDemIrdmFwMCt2V1o0V2JqYTZIYTRLTSs4UTQzU0ZLV0ZOSFUxRHVtV1Y4UjdTM1hPR3I5b1c0cFpEVFhWc3BlSDl3a0Vzcm82eDZ1b0t2ZXlrNVBnTThyUUQybDNrMDgvcUxHWExaMTNjZzlPMklGK3Bmei9CcmZ1VXNnSlVsdjV5L2lESFdxYXdXWWVTUTZ5SWZqNDZDN05VVTVjM1BrQ0F0Zm1rMjFCWmtwT1JWMWc3US9vdmRFcENIV2lJOTVkV1NseGcxSXJvM291eEltSE1vT3JRSGdidDNveko1aXNQYXFybVNHL0ZvSTBCQzNhYXVuSjUxVHAyUVJuaWlvWUc2M0o1dzc3Y3ZodGJnekVuVlVwSjJDMGlJNDZXaUR3UDJQUnR4Z0wwL0g2dCtnRGh1eHcvQ1c2QmVWbFNFcm93VnJpWXlKTG42U2doNU5QMk5nendCT2orZU9tMzh1TVNPVUlHVjdCQkNhcytWSENGUHRQQWtBb3J5TFFMdlN5Q1ZIR3JYRVRuSzdVSmZaaGk0WS9aZlNIVmErTWZBbGR4ZTRNZWNicHArcUFwYkpOOEhpUmlMdVpyZ0VBNDBNMktjcVpBcTlGMzRBNUhpNThHRmxISDhtU3NuVE1QM3ErYjNha3hTZkZqY0FZazZTaFljYjRldFJ0N0d1KzhGTVlzNWlsKytnaDRwK003ZE1tam5wUzJCOTNwNG1NSCtTdHRCZEhxVmRaK1JkWE9vMDRHZStkVHh6OFFnZWRmNnQ2bTc0ZTBoVUFpODZ3WXNDR09yaWhRZyszOVFYWVVYcUU4dXphTjFhRDZFcnFrakhFdmdmUllONTJvNXlkczZ0SVNLcGJxKzRNTWZZVUpXbGQzSFpkMGpJbjdhZ09vRW9tYmVOM0VXNUp3QTBPUmVUS2YrOHMycFJ2TnlkMFNnc1RjNHhSNzFpYTQ1TERDcGp2Wm1JVTI2ZGtZaDA1dHpWNU5lM2s0aHIxdSsyN1Z2NzM1dVg4MUFtVXhlOEJ6aHpqVk4xcXJFODdRREV4ajJtS1pZcExGNzJXaVhSSXlBbEFmMjZhalp1bHJlVDZ4MENXNG91NTFtSVhMeXNJY0N2dmc3UG9ZN2JzZ2hlNUhRdSthM0FRemVwMlloVTVja3Q1bXdWNEpCQkxXMEZwMGRzaE1uUzEvbHhDZW5LSkZ5ZC9nWXh3QVB5MHEyRjRRQytiWHh5bm8xeGo5bUhFOUdrZkhOU0JiSGdDK0tRKy9nSDh0V3hPM1Rmd2lvTnZtNU90citKUFMyVXA2bjRRTVIvUlRrMThnRXZQZmRNcFFKU1BqQmVXUTRmWTY1d2l2MEtkS0lnaDljMGNkODgxVS9KMS95N0lzdVlmYjdzb0RsemRMT2xNVEFxMjQxOTBCc0R4Z2tmKzFvQkRPS0pZcmhQZ3JQL2YrV2JiSWNFYnhKWXUvS0xWQkpaSS9XZVYySThvWCtVTzBsYUlCQWQ3Um5NcFJoR0h0YzBmQlhaZDZYZkFnWkhwb2dBZ3J2RmlERWhQaFZpQUdOeWdUam53OVJlN1NYdHNEV3lPWmxUWlppaDR4QURWU0dqZHFpV1ZUazV2bWNwSUh6aW0zb2RLSDJmNkRWc3prT05vVEZrSUlQNDNMZ1drMzhkMERBdjNJVzlxZzFqTUU0dGpDMWh5L056d0MwYlVZZk1pZlNPRnQ3eVN5QU5LbGY5RXBDZEJvbWIwTjRIZUZIMFZnYUVVSW5YOXJFdUZuNG5PT0xLSm4zK3FsbGhHR09MdlVzcjVOVnpCUU9tbjRobE1EaDFTc3EycDVzOFUyZUNnK1ZNWkYwY0o3TDdKcnFrZTloOW0zZ1JpUGlPTm40cFhWZUVmR3pvVWlpQ2Y4ZVlDMXpSUEk3NDJoR1U0cmlyUlBPQThHOXUranQrUmFZVlB2dVJnU2lxRTdqbGk1bmh6MnEyZHFVS2R1QlpXWW0yeElDMUxmWFVnWVdHcHlHYkZteU1EditBdG9aOExrYmxZYjkrbzM5VDRjUmJMcHk2OUF5VDRyaFJScWpjVE5tVzV0Ym15S1J4Z3dUSlRwQ2o0RjhRK1dya2FicG8zRWpCM2VQbDRZZXFvNWY4a3hGamE1OFI5dWZQSEl2OXM2MGt3d1c1YnBwQTd4VlpTTjFlS2JRYnBVcm5BaDN0dVBVbnRzdW4rUW9SMGc3eE5IdGFhZFNTejBaVHFDenowaGVxNC9ZY3duMm9hNHR6LzlJMURHdi94UWgySm5rMy9xbHVQNmdJUHBQMXUxeUp5TnFQeXo2eUF1VkJJdUNRZzYvTVd1dUt0WmFPVzRVbDRJNUlkMWVURldYUkdCV2ZsTnVWQ0pwZlVEMmhLR0RkMDFDeExDa1pGU081MDJUOTgrQU41a05CRklJdFZXOEtTSGZmTzY0Q295VGNFWFE3R3VVYUNLbnpmRlFyRUVrclBIWE9RYWcyQXlVRzlOekUrQVZHREVxaVVSd0pMYm16WUczZ2ExWmpNcnZWRXh6ZXdva21PbWxaVk9pdkFwUm9hcW90RTRXVnl1WjhhYktuME5VYTB0TFRpbGFhSE05RkdHUnI2OW1nSHVSNzF4b1ByRGFTQkovYnR0QzFJWGxmdHhNT1JLMElLbHd2OXV4TEtaaUlTdkJ0Ym5TRm9HT2p1MkpJeWkyTWNNeTRibzBJZlVkRndZOHVYSE1SNFMrUVorWFh4ZXBJL0hUcCtHNFVqVzM1cnI5U0dwQWkxYmd0VWNtWWZoTXk2MDVnWGEyQUdiYnJpVjRGa1I2LzFrU0ErQ1VETGlZSW5XNklSWC9sdkRaelVVc1ZxejNyK3FzOFhjL2prV29Wa1J4V1ZmWEo2MVZUbGxubHdNRDd6TDRiUUJFQUUvVitUclA3UVFGd0N6NGNNRW1EcUNWN0E5T3VqRnpmOHRMR2FwVkw5aXV3TEpDVzhlbVR2ZHRjR2ZEUncxeWQ1VzRScnU0azlqMkpIcGpuUUlTdmphYk5zdCtaMmtIaWFNOFdIbVE0bUtCb05Sck9VNTZ2cHBWSmIvbVF2MkRUMGNvYnAyeHVKWEszK1FTTm5NVlBPY3ZTOUFDcUxVOEdEM2pyNTZjMjRjSHdwUnJrYWpEM3VJZVdGR0owcHg3ZmFHRmd3YVRQeVFSb2ZmeDc2N1lySnNtMWtKWWlVNDRpYis4d1RmWm9GTkhDVlpzVVJwejFXUjdiUnNmbVp1cWxQYzZyeTRXazA4QTk0SHNGR2pSc083eXp4SWs1UzdrQldmb2grQU9zY1ZHdTBNS3d6a2IvQmkybEtLMXR2bklyUkxwcnJNQ0ZvOE0vZDZ4QjlDV3FzZ04xdjAxZmdYSmFOeXRFcTd4RjVMTnJyaWpxQmsycUFvM2dkbmlOa2pGQUZncHRCbXFwdjhlY3BuVmp1cHBvTFY1MnhXWUsrMFVMSll3V05LSzNGdVFsTHg4ZzhnSk9vTzA1eUN3MjhFMU1JaWorZGdWWTlGRFJQYnhyRzF6WkpZRmp4L1ZMK00xVzVQNnNYRExyWnNlVEJJeENmQ0JSYnpaNjNGWVdKZ2tFcENwRjMrZzFLWU9aTXd5d0JHY2pjMFh0NWlaVkdmd0ZVMlRPcGVOL0tHYTVMYW1rb25GWEFyYkZxaFBLVFZjMVJ1M3dNMFdhMlRSNnU5MldIUGdTUVZST3o3Z0FlTXBueG9CelE4TFA0QjRVZUFBdDhOelIzSjB4WWVtMkdhRXRGb0ZpcWtXaFJkWWlLWHE2UVQzUERreTh4QzdBRVpwcm1Gb3U2dGxzOWliSkhRSjNoaW0rd2p1VUloLzJSTURjTGYwTFNWNlpPaXcyK2xISjEwOWVOdE9XckE3RWRCQURFbzNZTUx0empUNVE4ZnVORTMzZ1U5NlhvaXVVNzhZRWMzQTkyTy9SMmo4alFEaXBVZDlYL2RGSXFxbVRHNCtSSmZqTHlSMFBOdUFTQkNPd3VMNmgwcDUzVklhQ0I5Qnhtd3BueUZBMjRMeGJRa3ZxcHpkbDhtZmZucGY3QkhsMGU0anNWdmJGc3VTSmlzZ2dwckkzMlJ4VnlkMEJLMUN1QnZKaFJDVXVGWDNzaFFKSmR5UTF0bG5NYTNwaHJNdHE2U0h0ZGhGdE5YOXB2QzBvQXN3aDhFcDJxdWllOE9uNWtBdjYwVTdYeW52M3RqREpjNjYvN1N5SDJ4ck1JanR1MitYckc2c25aL1dMd2ZYSW8ycTgxNU9wM0IxOU1WYmY2akM4bVJtR2R3R1YybUZoeTBXWXRYNHdUa0NHbEZRMGlMeVd4ck5IVzViUU1IVG9yU0VkTlZicnhvM2YwdGx4ZGtlZFhhSFVrRStvQkdqb2ZGUU5mS3luZ2xzZVlOUU56WjQrVDhQbHZnay9SdmFRRURialpubXMvZ3AyTThaMW4rN24rYlROMEhhbklQYlB4NnVWZnJFQ1lGelhxTEE2MFd4RG01YnZ3Q2szSlFHQXByaHRabHNmckFTZWJ2NUdLREdYbDYzdjhTaHYzMmp6NTloSFA5Y3NPTWE4OTIvbkZiU296ckVxRk02WUdPRERkWlF1OEttVitNblJjcEpNZWp1YkZJOXhOL01ObXZjY2MrUWR2MW1vODFCUTllT1pHUzA4cmRSbWt2OHcxNkluNnNSbFRVc0FRR1hmNjJLNm54aXRqK0VkQ3p6akttUmlTOU9wRU94c1daeFVCYnZqSGNoSnFXM2U1U1V3L08vR1owWEVKVHhnUTVObXRzU3lmUE41QU5lRGdqUGplOUdKQld3SnAwSlJhQWkvdi9YcHRIUUt2TDFwNU02TmpvY3pKdkczenMvUEdUdU5SMnlTUG9QYTQyVisrY1haSWNRdENSRmh2UEdBNWRmZ2I1cENPVk1JUE96MENydXhtbU5va2VvbmlMOU54Z3UxbDBFR2trSnFZaS9yT3ZrTS9sS04xeUFGRUsrWTBETEVDVTJjS3NFeUV6b2RGVmlsWkM1Snk0a0htM29zemFKamNYcmxYajhtbU9RblFxVTFoUFBwdlhPU0xtUFhJVkhleTdEREJkMFRjditRWTRrcnZjU0ZmeUJ1R0F5QWdOTmxRUUdLdzdZaWVOQ2IwT2Y4L2F6aGdRMVZyWGd0UTZOdkJ2V2xaSmFCa0xJY0JleGREWVFKQi81WGxpUlQ4bno5Sm1ZSU45TWw2QW9pd0RwTUZycThwKy9FZTM5REZxKzdjODh1cy9vWGlKdU02Y0p6bXAxdFN3K0hLaEkzTjFmN3pmTEYxRFJobXhRWlAxemJxZloveXAzTTJLa0p4YVNteWc3anhsSC8yN0E0dHR4NW55aWdQYlk1N0tnTUxiTStISTI0d1pwWnBuaWJpT0FwTTRnMGdNMFB6a29MR1c3MzFwMkI5QWZocEJ5K1VDWkJKQXd1ejhiZlNNRDZNS1lXa0JqUnp2TXJVZDIzM2I0UXI3RHU2cDJMSG8rYzFlT09tclgyTlJKNzFWRDhzeg==';
    }


}


